<template>
  <div class="employees-container">
    <div class="app-container">
      <el-card class="box-card">
        <!-- 导入上传excel的组件 -->
        <UpLoadExcel :on-success="onSuccess" />
      </el-card>
    </div>
  </div>
</template>

<script>
import { formatExcelDate } from '@/utils'
import { batchEmployListApi } from '@/api/employees'
export default {
  methods: {
    // 处理数据的方法
    transResult(res) {
      // 整理一个枚举对象,用于一一对应
      const userRelations = {
        入职日期: 'timeOfEntry',
        手机号: 'mobile',
        姓名: 'username',
        转正日期: 'correctionTime',
        工号: 'workNumber',
        部门: 'departmentName',
        聘用形式: 'formOfEmployment'
      }
      // 声明一个新对象,这个对象就是最终需要的对象
      const obj = {}
      // 使用map方法整理数据
      return res.map((item) => {
        // 将每一个key整理成数组
        // Object.keys es6新语法,将对象的key整合成一个数组
        const keyArr = Object.keys(item)
        // 将key数组遍历
        keyArr.forEach((key) => {
          // 每一个key,都可以对应一个英文key
          const EnglishKey = userRelations[key]
          // 这里增加一个判断
          if (EnglishKey === 'timeOfEntry' || EnglishKey === 'correctionTime') {
            obj[EnglishKey] = new Date(formatExcelDate(item[key]))
          } else {
            obj[EnglishKey] = item[key]
          }
        })
        // 最后将对象返回出来
        return obj
      })
    },
    async onSuccess({ header, results }) {
      // 调用导入员工请求
      const res = await batchEmployListApi(this.transResult(results))
      this.$message.success(res.message)
      this.$router.back()
    }
  }
}
</script>

<style>
</style>
